The present disclosure relates to cloud computing, and more specifically, to a method and a system for performing application instance staging in a cloud computing platform.
PaaS (Platform-as-a-Service) is a business mode offering a platform as a service. Providers of PaaS can provide platform level products such as operating systems, application servers, and application development environments to a user through a web service. Via PaaS service, a software developer can develop and deploy a new application program without purchasing platform software.
Take a web application program, for example. Generally, a web application program needs to be deployed on an application server which runs on an operating system, and the operating system runs on a hardware environment. Both the application server and the operating system are platform level products. Under a cloud computing environment, hardware can be provided as a service through IaaS (Infrastructure-as-a-Service). A required hardware environment can be provided by a virtualized infrastructure such as virtual machine, whereas a cloud computing platform integrates functions of the application server and the operating system. A user can directly develop and deploy his own application program on that platform without having to build his own platform.
In order to deploy a user's application program on a cloud computing platform, the user first pushes the application program to the cloud computing platform. The cloud computing platform then analyzes the type of application program, prepares a corresponding runtime environment of the application program according to the type of application program, installs dependency of the application program, packages them into a runnable droplet and stores it in the cloud system. This process is referred to as “application instance staging”. A main module for performing application instance staging in a cloud computing platform is referred to as buildpack. Generally, a buildpack is specific to a type of application program. Within a same cloud computing platform, there is often a plurality of buildpacks for processing different types of application programs. For example, there is a java buildpack for a Java application deployed on the cloud computing platform; and there is a node.js buildpack for a node.js application. After application programs have been pushed to the cloud computing platform, the cloud computing platform invokes, one by one, buildpacks for processing different types of application programs. If a buildpack discovers that the type of application program is one which is to be processed by that buildpack, then that buildpack starts to perform application instance staging on that application program.
With ever increasing diversity and complexity of application programs, existing buildpacks may not be able to realize functions of performing application instance staging under some scenarios. Therefore, there is a need to make a certain degree of improvement on existing buildpacks.